package com.yidu.action;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.yidu.comment.Page;
import com.yidu.comment.Tools;
import com.yidu.model.SnProDetail;
import com.yidu.model.SnProduction;
import com.yidu.model.SnUser;
import com.yidu.service.SnProductionService;

/**
 * 订单计划表
 * @author chensituo
 * @date 2018年11月25日 下午10:30:21
 */
@Controller
@RequestMapping("/production")
public class SnProductionAction {
	/**
	 * 注入生产计划service
	 */
	@Resource
	SnProductionService productionService;
	
	/**
	 * 
	 * 生产分页查询 条件查询
	 * @param page 当前页数
	 * @param limit 每页多少行
	 * @param production 条件
	 * @return map json格式
	 */
	@RequestMapping("/findAll")
	@ResponseBody
	public Map<String, Object> findAll(String page,String limit,SnProduction production){
		//得到分页工具类
		Page pages=new Page();
		//将数据封装
		pages.setCurPage(Integer.valueOf(page));
		pages.setRows(Integer.valueOf(limit));
		
		//创建一个map对象
		Map<String, Object> maps=new HashMap<>();
		maps.put("page", pages);
		maps.put("production", production);
		//调用条件查询的方法
		List<SnProDetail> list=productionService.findAll(maps);
		//调用查询行数的方法
		int count=productionService.findCount(maps);
		
		//创建一个map
		Map<String, Object> map = new HashMap<>();
		map.put("code", 0);
		map.put("msg", 0);
		map.put("count",count);
		//将list放入map中
		map.put("data", list);
		return map;
	}
	/**
	 * 根据id删除
	 * @param proId 生产id
	 * @return 0 删除失败 1 删除成功
	 */
	@RequestMapping("delete")
	@ResponseBody
	public int delete(String proId) {
		//调用根据id查询的方法
		SnProduction production=productionService.findById(proId);
		//修改数据为不可用
		production.setIsva(0);
		//调用修改的方法
		int rows=productionService.updateByPrimaryKeySelective(production);
		return rows;
	}
	/**
	 * 根据id查询
	 * @param proId 生产计划id
	 * @return 生产计划model
	 */
	@RequestMapping("findById")
	@ResponseBody
	public SnProduction findById(String proId) {
		//调用根据id查询的方法
		return productionService.findById(proId);
	}
	/**
	 * 增加或修改的方法
	 * @param production 生产计划表model
	 * @return 0 增加或修改失败 1 增加或修改成功
	 */
	@RequestMapping("addOrUpdate")
	@ResponseBody
	public int addOrUpdate(SnProduction production,HttpSession session) {
		production.setOptime(Tools.getCurDateTime());
		production.setProState(0);
		SnUser user=(SnUser) session.getAttribute("user");
		production.setOper(user.getUserName());
		//调用增加或修改的方法
		return productionService.addOrUpdate(production);
	}
	
	/**
	 * 修改状态商品材料库存
	 * @param proId 生产订单id
	 * @param state 状态
	 * @return 0 修改失败 1 修改成功
	 */
	@RequestMapping("updateState")
	@ResponseBody
	public int updateState(String proId,String state) {
		//调用修改的方法
		return productionService.updateState(proId,state);
	}
	
	/**
	 * 修改订单状态的方法
	 * @param proId 生产订单id
	 * @param state 状态
	 * @return 0 修改失败 1 修改成功
	 */
	@RequestMapping("updateStates")
	@ResponseBody
	public int updateStates(String proId,String state) {
		//调用修改的方法
		return productionService.updateStates(proId,state);
	}
	
}
